package ynu.edu.domain.dto;

import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Min;
import javax.validation.constraints.Max;

/**
 * 文本生成图像请求DTO
 */
@Data
public class Txt2ImgRequest {
    
    /**
     * 用户输入的正面提示词
     */
    @NotBlank(message = "正面提示词不能为空")
    private String prompt;
    
    /**
     * 用户输入的负面提示词（可选）
     */
    private String negativePrompt;
    
    /**
     * 图片宽度
     */
    @Min(value = 1, message = "宽度最小为1")
    @Max(value = 2048, message = "宽度最大为2048")
    private Integer width = 512;
    
    /**
     * 图片高度
     */
    @Min(value = 1, message = "高度最小为1")
    @Max(value = 2048, message = "高度最大为2048")
    private Integer height = 512;
    
    /**
     * 模型名称，默认为text2img_normal
     */
    private String modelName = "text2img_normal";
    
    /**
     * 获取完整的提示词（模型前缀 + 用户输入）
     * @param promptPrefix 模型配置的提示词前缀
     * @return 完整提示词
     */
    public String getFullPrompt(String promptPrefix) {
        if (promptPrefix == null || promptPrefix.trim().isEmpty()) {
            return this.prompt;
        }
        return promptPrefix + ", " + this.prompt;
    }
} 